all repos — caroster @ 54cb6c4b8a7dd7edbecc198ae921331a52d5aa90

[Octree] Group carpool to your event https://caroster.io

frontend/pages/e/[uuid]/assign/[passengerId].tsx (view raw)

 1import {PropsWithChildren} from 'react';
 2import {useRouter} from 'next/router';
 3import pageUtils from '../../../../lib/pageUtils';
 4import EventLayout from '../../../../layouts/Event';
 5import {EventByUuidDocument} from '../../../../generated/graphql';
 6import AssignPassenger from '../../../../containers/AssignPassenger';
 7
 8interface Props {
 9  eventUUID: string;
10  announcement?: string;
11}
12
13const Page = (props: PropsWithChildren<Props>) => {
14  const {push} = useRouter();
15  return (
16    <EventLayout
17      {...props}
18      titleKey="passenger.assign.title"
19      Tab={AssignPassenger}
20      goBack={() => push(`/e/${props.eventUUID}/waitingList`)}
21    />
22  );
23};
24
25export const getServerSideProps = pageUtils.getServerSideProps(
26  async (context, apolloClient) => {
27    const {uuid} = context.query;
28    const {host = ''} = context.req.headers;
29    let event = null;
30
31    // Fetch event
32    try {
33      const {data} = await apolloClient.query({
34        query: EventByUuidDocument,
35        variables: {uuid},
36      });
37      event = data?.eventByUUID?.data;
38    } catch (error) {
39      return {
40        notFound: true,
41      };
42    }
43
44    return {
45      props: {
46        eventUUID: uuid,
47        metas: {
48          title: event?.attributes?.name || '',
49          url: `https://${host}${context.resolvedUrl}`,
50        },
51      },
52    };
53  }
54);
55
56export default Page;